﻿using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace Pointandclick.ScreenManagement
{
    abstract class BaseScreen
    {

        #region Properties
        ScreenManager manager;

        Texture2D background;

        /// <summary>
        /// ScreenManager that is managing this screen
        /// </summary>
        public ScreenManager Manager
        {
            get { return manager; }
            set { manager = value; }
        }

        /// <summary>
        /// This screen's background
        /// </summary>
        protected Texture2D Background
        {
            get { return background; }
            set { background = value; }
        }

        #endregion

        /// <summary>
        /// Loads the screen contents
        /// </summary>
        protected abstract void LoadContent();

        /// <summary>
        /// Updates the screen components
        /// </summary>
        /// <param name="gameTime"></param>
        public abstract void Update(GameTime gameTime);

        /// <summary>
        /// Draws the screen components
        /// </summary>
        /// <param name="spriteBatch"></param>
        /// <param name="color">Color to tint the sprites. Use Color.White for no tinting</param>
        public abstract void Draw(SpriteBatch spriteBatch, Color color);
    }
}
